3.5 变量
在编程中,变量是一个声明,我们通常会使用变量来存储可以改变的值。类比于数学解答中的设定方法,例如:设高度为20
,这里的高度
就是一个变量,它可以随时被赋值为其他值。
我们将其精简提炼后,总结为了以下几点。
常用声明方式
首先我们在YouCanGoCode
目录下新建一个目录,命名为lesson2
,新建一个go文件,命名为 lesson2.go。
接下来,我们需要在lesson2.go
文件内输入以下代码
package main
import "fmt"
func main() {
var a string
fmt.Println(a)
}
在代码中,我们看到var a string
,这一行解释为:声明了一个string
类型的变量,名称为a
。
也就是说我们在声明变量时,格式为:var
+ 变量名称
+ 数据类型
。
变量的赋值
接下来我们执行lesson2.go
文件,此时没有任何输出。这是因为我们仅仅是进行了声明,并没有进行赋值,即进行了:设:高度
,而没有进行:设:高度等于20
我们在代码中加入a = "lesson2"
,即代码为:
package main
import "fmt"
func main() {
var a string
a = "lesson2"
fmt.Println(a)
}
此时我们再执行lessong2.go
可以看到如下输入:
lesson2
在上面的代码中,我们通过a = "lesson2"
为变量进行了赋值,通过上面的代码,我们可以总结出如下规律:
- 首先需要对变量进行声明
- 其次需要对变量进行赋值
- 如果仅仅进行声明,而没有进行赋值,那么变量输出是没有内容的
声明并同时赋值
我们已经知道,变量需要声明并赋值,才可以输出内容,在Go语言里我们可以在声明的同时进行赋值,如下代码所示:
package main
import "fmt"
func main() {
var a string = "lesson2"
fmt.Println(a)
}
此时我们执行lessong2.go
,可以看到如下输出:
lesson2
在上面的代码中,我们将两行代码合并为了一行,即:声明的同时,通过等号=
为变量进行了赋值。
不声明类型
上面我们已经介绍了两种声明方式,接下来我们将下面的代码放到lesson2.go
文件中:
package main
import "fmt"
func main() {
var a = "lesson2"
fmt.Println(a)
}
此时我们执行lessong2.go
,可以看到如下输出:
lesson2
在上面的代码中,我们去除了string
,最终代码为var a = "lesson2"
,发现同样可以输出结果,这是因为Go语言会根据"lesson2"
自动为我们匹配类型,也就不需要我们去指定类型。
不使用var
声明
上面我们已经完整介绍了变量的声明与赋值,接下来我们将下面的代码放到lesson2.go
文件中
package main
import "fmt"
func main() {
a := "lesson2"
fmt.Println(a)
}
此时我们执行lessong2.go
,可以看到如下输出:
lesson2
在上面的代码中,我们去除了var
、string
,而是直接使用:=
来进行声明,实现了声明并赋值,这也是比较常用的一种方式。
小结
我们学习了Go语言声明变量的几种方式,总结为一下几点:
- 仅声明,不赋值
var a string
- 声明后,再赋值
var a string
a = "lesson2"
- 声明并同时赋值
var a string = "lesson2"
- 取消类型声明,自行判断
var a = "lesson2"
- 使用
:=
快捷声明
a := "lesson2"
其他数据类型的变量声明也同样遵循上面的几个规则,快跟随下面的代码去尝试一下吧。
package main
import "fmt"
func main() {
a := "lesson2"
fmt.Println(a)
var b int = 1
fmt.Println(b)
var c int32 = 1
fmt.Println(c)
var d int64 = 1
fmt.Println(d)
var e float32 = 1.001
fmt.Println(e)
var f float64 = 1.001
fmt.Println(f)
var g bool = true
fmt.Println(g)
}
执行lesson2.go
代码后输入如下:
lesson2
1
1
1
1.001
1.001
true